package com.shujia.spark.core

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo03Filter {
  def main(args: Array[String]): Unit = {
    /**
      * filter算子，函数返回true保留数据，
      * 函数返回false过滤数据
      */

    /**
      * 转化算子：懒执行，需要action算子触发执行
      * 操作算子：触发任务执行，每一个action都会触发一个任务
      */
    val conf: SparkConf = new SparkConf()
      .setAppName("filter")
      .setMaster("local")
    //spark创建上下文对象
    val sc = new SparkContext(conf)
    //直接读取List中的数据
    val listRDD: RDD[Int] = sc.parallelize(List(1,2,3,4,5,6,7,8,9,10))
    println("filter之前")
    val filterRDD: RDD[Int] = listRDD.filter(i =>{
      println("filter:"+i)
      i % 2==0
    })
    println("filter之后")
    filterRDD.foreach(println)

    /**
      * 先执行两个println，在执行算子里面的程序
      */
  }
}
